#!/bin/bash

# 脚本名称: configure_pttx_sudo_nopasswd.sh
# 功能: 配置 pttx 用户免密码使用 sudo su
# 使用方法: 以 root 用户执行此脚本

# 检查是否以root用户运行
if [ "$(id -u)" -ne 0 ]; then
    echo "错误: 此脚本必须以root用户身份运行"
    exit 1
fi

# 检查 pttx 用户是否存在
if ! id -u pttx &>/dev/null; then
    echo "错误: 用户 pttx 不存在"
    exit 1
fi

# 配置免密 sudo su
echo "正在配置 pttx 用户免密 sudo su..."
CONFIG_FILE="/etc/sudoers.d/pttx_nopasswd_su"

# 检查是否已存在配置
if [ -f "$CONFIG_FILE" ]; then
    echo "警告: 配置文件 $CONFIG_FILE 已存在"
    echo "将备份原有文件并创建新配置"
    mv "$CONFIG_FILE" "${CONFIG_FILE}.bak_$(date +%Y%m%d%H%M%S)"
fi

# 创建新的配置文件
echo "pttx ALL=(ALL) NOPASSWD: /bin/su" > "$CONFIG_FILE"
chmod 440 "$CONFIG_FILE"

# 验证配置语法
if ! visudo -c &>/dev/null; then
    echo "错误: sudoers 配置语法检查失败"
    echo "正在恢复备份文件..."
    if ls "${CONFIG_FILE}.bak_"* &>/dev/null; then
        mv "${CONFIG_FILE}.bak_"* "$CONFIG_FILE"
    else
        rm -f "$CONFIG_FILE"
    fi
    exit 1
fi

echo "配置成功完成!"
echo "pttx 用户现在可以无需密码使用: sudo su -"

exit 0